/*
 ============================================================================
 Name        : hev-receiver.h
 Author      : Heiher <admin@heiher.info>
 Version     : 0.0.2
 Copyright   : Copyright (c) 2010 everyone.
 Description : Linkage 802.1x for Unix-like operating system.
 ============================================================================
 */

#ifndef __HEV_RECEIVER_H__
#define __HEV_RECEIVER_H__

#include <gio/gio.h>

G_BEGIN_DECLS

#define HEV_TYPE_RECEIVER	(hev_receiver_get_type())
#define HEV_RECEIVER(obj)	(G_TYPE_CHECK_INSTANCE_CAST((obj), HEV_TYPE_RECEIVER, HevReceiver))
#define HEV_IS_RECEIVER(obj)	(G_TYPE_CHECK_INSTANCE_TYPE((obj), HEV_TYPE_RECEIVER))
#define HEV_RECEIVER_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST((klass), HEV_TYPE_RECEIVER, HevReceiverClass))
#define HEV_IS_RECEIVER_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE((klass), HEV_TYPE_RECEIVER))
#define HEV_RECEIVER_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS((obj), HEV_TYPE_RECEIVER, HevReceiverClass))

typedef struct _HevReceiver HevReceiver;
typedef struct _HevReceiverClass HevReceiverClass;

struct _HevReceiver
{
	GObject parent_instance;
};

struct _HevReceiverClass
{
	GObjectClass parent_class;

	/* signals START */
	void (*received)(HevReceiver * self, gpointer data);
	/* signals END */
};

GType hev_receiver_get_type(void);

GObject * hev_receiver_new(GCancellable * cancellable, GError ** error, gchar * interface);
gint hev_receiver_set_filter(HevReceiver * self, guchar * mac);

G_END_DECLS

#endif /* __HEV_RECEIVER_H__ */

